/**
列表型数据 -> 树形数据
@params
{list} Array   列表数据
{ rootValue }  Number   根节点的值
**/

export const translateListToTreeData = (list, rootValue) => {
  // 核心逻辑：遍历列表数据，找到父级部门，递归思想（找规律），生成树形数据
  // 结论：子级部门的pid === 父级部门的id
  const arr = [] // 存储最终的树形数据
  // 遍历列表数据
  list.forEach(item => {
    // 确定一级部门
    if (item.pid === rootValue) {
    // 根据规律确定二级 / 三级 / 四级 / 五级 ... 部门
    // 查找原则：通过父级确定子级 -> 传入父级部门的id（子部门的pid === 父级部门的id）
      const children = translateListToTreeData(list, item.id)
      // 如果子级部门存在的 数组长度 大于0,  将子级部门添加到父级部门身上
      if (children.length) item.children = children
      arr.push(item)
    }
  })
  return arr
}
